/**********************************
*@file: config.go
*@author: wangjunjun
*@brief:配置文件
*@version: v.0
*@date: 2023/03/14
***********************************/
package config

import (
	"encoding/json"
	"io/ioutil"

	"github.com/sirupsen/logrus"
)

type Cfg struct {
	Dir            string   `json:"dir"`
	HostAddress    string   `json:"hostAddress"`
	ExpireDate     string   `json:"expireDate"`
	FtpConf        string   `json:"ftpConf"`
	UsageThreshold float64  `json:"UsageThreshold"`
	DataBase       DataBase `json:"dataBase"`
}

// 数据库信息
type DataBase struct {
	Username   string `json:"username"`
	Password   string `json:"password"`
	HostDB     string `json:"hostDB"`
	DBName     string `json:"dbname"`
	RGBTable   string `json:"rgbtbl"`   //存储rgb数据
	DepthTable string `json:"depthtbl"` //存储depth数据
	MapTable   string `json:"maptbl"`   //存储map数据
	SigTable   string `json:"sigtbl"`   //存储信令
}

type JsonStruct struct{}

func NewJsonStruct() *JsonStruct {
	return &JsonStruct{}
}
func (jst *JsonStruct) Load(filename string, v interface{}) {
	//ReadFile 函数会读取文件的全部内容，并将结果以 []byte类型返回
	data, err := ioutil.ReadFile(filename)
	if err != nil {
		logrus.Info("ReadFile Failed")
		return
	}
	err = json.Unmarshal(data, v)
	if err != nil {
		return
	}
}

// 获取配置文件相关信息
func (jst *JsonStruct) LoadCfg() Cfg {
	JsonParse := NewJsonStruct()
	v := Cfg{}
	JsonParse.Load("./WlRobotStore/cfg/json.cfg", &v)
	return v
}
